Electronic data systems are frequently interconnected using network communication systems. Area-wide networks and channels are two approaches that have been developed for computer network architectures. Traditional networks (e.g., LAN's and WAN's) offer a great deal of flexibility and relatively large distance capabilities. Channels, such as the Enterprise System Connection (ESCON) and the Small Computer System Interface (SCSI), have been developed for high performance and reliability. Channels typically use dedicated short-distance connections between computers or between computers and peripherals.
Features of both channels and networks have been incorporated into a new network standard known as "Fibre Channel". Fibre Channel systems combine the speed and reliability of channels with the flexibility and connectivity of networks. Fibre Channel products currently can run at very high data rates, such as 266 Mbps or 1062 Mbps. These speeds are sufficient to handle quite demanding applications, such as uncompressed, full motion, high-quality video. ANSI specifications, such as X3.230-1994, define the Fibre Channel network. This specification distributes Fibre Channel functions among five layers. The five functional layers of the Fibre Channel are: FC-0--the physical media layer; FC-1--the coding and encoding layer; FC-2--the actual transport mechanism, including the framing protocol and flow control between nodes; FC-3--the common services layer; and FC-4--the upper layer protocol.
There are generally three ways to deploy a Fibre Channel network: simple point-to-point connections; arbitrated loops; and switched fabrics. The simplest topology is the point-to-point configuration, which simply connects any two Fibre Channel systems directly. Arbitrated loops are Fibre Channel ring connections that provide shared access to bandwidth via arbitration. Switched Fibre Channel networks, called "fabrics", are a form of cross-point switching.
Conventional Fibre Channel Arbitrated Loop ("FC-AL") protocols provide for loop functionality in the interconnection of devices or loop segments through node ports. However, direct interconnection of node ports is problematic in that a failure at one node port in a loop typically causes the failure of the entire loop. This difficulty is overcome in conventional Fibre Channel technology through the use of hubs. Hubs include a number of hub ports interconnected in a loop topology. Node ports are connected to hub ports, forming a star topology with the hub at the center. Hub ports which are not connected to node ports or which are connected to failed node ports are bypassed. In this way, the loop is maintained despite removal or failure of node ports.
The occurrence of errors is an inherent aspect of complex signal processing such as that involved in network systems, including loops. Due to the unavoidable nature of the occurrence of errors in such systems, methods for handling and detecting such errors in an efficient manner are desirable and have been the object of extensive research in many fields.
In general, there are two types of errors which typically arise in loop networks: transmission code errors and protocol violation errors. Transmission code errors typically include data which are not bit-wise correct or have invalid 10B codes after 8B/10B encoding (a known encoding scheme). Such errors typically arise from the loss or unintentional alteration of bits in transmission. Protocol violation errors relate to the proper sending of signals (that is, the error is not a loss of bits generated in the transmission process) which are improperly grouped or arranged according to the appropriate protocol. For example, under FC-AL protocols, the misuse of fill words in terms of timing or sequence between frames generates a protocol violation error. Under FC-AL protocols, a proper transmission sequence is typically: data, then one or more fill words (six by default), then more data. An extended stream of data alone may generate a protocol violation error.
The detection of such transmission code errors or protocol violation errors is a known process. However, the handling of errors once detected as well as the reporting of detected errors is not yet at a satisfactory state in the prior art. Conventional solutions to error handling in loop network technology typically place error handling in the devices attached to node ports, outside the hub. As a result, each device typically requires error detection and control circuitry. In addition, conventional technology typically handles detected errors with hardwired thresholds and parameters.
Conventional technology typically does not provide statistical information on the generation of errors by a node port attached to a particular hub port. As a result, in conventional hubs it is difficult to analyze systematic problems of a hub which is experiencing recurrent errors. Trial and error, typically by removal and reinsertion of node ports one at a time, is necessary to determine whether a particular node port is generating an excessive number of errors, the errors are more regularly spread, or some other problem exists.
The inventors have determined that it would be desirable to provide an error detection, handling, and reporting circuit in a hub port which would provide programmability for automatic bypass of the hub port, and statistical reporting of the generation of errors and bypasses within that hub port and its associated node port.